Computing devices can be used to request content from other computing devices over a communication network. In a common application, a client computing device can request a web page from a server computing device via the internet. Browser application software on the client computing device typically retrieves the requested web page, processes resource identifiers embedded in the web page to generate requests for additional resources (e.g., images, script files, etc.), and renders the content for presentation. From the perspective of a user of a client computing device, a user experience can be defined in terms of the performance and latencies associated with obtaining and rendering the requested network content on the client computing device. Latencies and performance limitations of any of the above-referenced processes may diminish the user experience.
Proxy servers and content delivery networks can reduce requests to an origin content server by providing cached copies of content to computing devices. In addition, proxies and content delivery networks and help reduce page load times by storing the cached content closer to a computing device. For example, computing devices can transmit content requests to a proxy server rather than directly to an origin server. The proxy server can obtain content from origin servers on behalf of the computing devices, provide the content to the computing devices, and also store copies of the content in a cache. The proxy server can then service subsequent requests for content from its own cache, rather than obtaining the content from the origin server, if the requested content exists in the cache and has not yet expired. Some proxy servers use “cache warmers” or other components to update cached content and reduce the likelihood that cached content will expire before a subsequent request for the cached content is received by the proxy server.